package com.youbug.mall.ware_wms.service;

import com.youbug.common.to.OrderTo;
import com.youbug.common.to.mq.StockLockedTo;
import com.youbug.common.vo.R;
import com.youbug.mall.order_oms.vo.WareSkuLockVo;
import com.youbug.mall.ware_wms.entity.WmsWareSku;
import com.baomidou.mybatisplus.extension.service.IService;
import com.youbug.common.vo.QueryVo;
import com.baomidou.mybatisplus.core.metadata.IPage;

/**
 * <p>
 * 商品库存 服务类
 * </p>
 *
 * @author youbug
 * @since 2024-05-05
 */
public interface IWmsWareSkuService extends IService<WmsWareSku> {

    IPage<WmsWareSku> getWmsWareSkuPage(QueryVo<WmsWareSku> queryVo);

    void addStock(Long skuId, Long wareId, Integer skuNum);

    R<Boolean> orderLockStock(WareSkuLockVo lockVo);

    void unlockStock(StockLockedTo to);

    void unlockStock(OrderTo orderTo);
}
